Verification of Loop Parallelisations
نویسندگان
چکیده
Writing correct parallel programs becomes more and more difficult as the complexity and heterogeneity of processors increase. This issue is addressed by parallelising compilers. Various compiler directives can be used to tell these compilers where to parallelise. This paper addresses the correctness of such compiler directives for loop parallelisation. Specifically, we propose a technique based on separation logic to verify whether a loop can be parallelised. Our approach requires each loop iteration to be specified with the locations that are read and written in this iteration. If the specifications are correct, they can be used to draw conclusions about loop (in)dependences. Moreover, they also reveal where synchronisation is needed in the parallelised program. The loop iteration specifications can be verified using permission-based separation logic and seamlessly integrate with functional behaviour specifications. We formally prove the correctness of our approach and we discuss automated tool support for our technique. Additionally, we also discuss how the loop iteration contracts can be compiled into specifications for the code coming out of the parallelising compiler.
منابع مشابه
Simulation and Experimental Verification of Closed Loop Operation of Buck / Boost DC-DC Converter with Soft Switching
A major problem in an isolated DC/DC converters operating at high switching frequencies is the attendant switching losses in the semiconductor devices. This can be reduced by introducing either zero-voltage switching (ZVS) or zero-current switching (ZCS) of the semiconductor switches. This paper deals with the simulation, design, fabrication and experimental evaluation of a novel soft-switching...
متن کاملParallel Shuffling and Its Application to Prêt à Voter
We consider the problem of verifiable parallel shuffling in which the same shuffle is simultaneously performed on two or more lists of input ciphertexts, each list encrypted under a different key. We present three parallelisations of shuffle proofs from different paradigms. The properties of each protocol are analyzed and contrasted, and their suitability for electronic voting discussed. We sho...
متن کاملSoftware Verification Using k-Induction Extended version including appendix with proofs
We present combined-case k-induction, a novel technique for verifying software programs. This technique draws on the strengths of the classical inductive-invariant method and a recent application of k-induction to program verification. In previous work, correctness of programs was established by separately proving a base case and inductive step. We present a new k-induction rule that takes an u...
متن کاملA preliminary study on phylogenetic relationship between five sturgeon species in the Iranian Coastline of the Caspian Sea
The phylogenetic relationship of five sturgeon species in the South Caspian Sea was investigated using mtDNA molecule. Sequence analysis of mtDNA D-loop region of five sturgeon species [Great sturgeon (Huso huso), Russian sturgeon (Acipenser gueldenstaedtii), Persian sturgeon (Acipenser persicus), Ship sturgeon (Acipenser nudiventris), Stellate sturgeon (Acipenser stellatus)] and DNA sequencing...
متن کامل